Skip to content

[pull] master from cube-js:master#456

Merged
pull[bot] merged 2 commits into
code:masterfrom
cube-js:master
May 7, 2026
Merged

[pull] master from cube-js:master#456
pull[bot] merged 2 commits into
code:masterfrom
cube-js:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 7, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

waralexrom and others added 2 commits May 7, 2026 18:10
…nsport (-20%) (#10837)

Switch the JS->Rust raw query results wire format from row-oriented `Vec<IndexMap<String, DBResponsePrimitive>>` (each row carrying its own copy of every column name) to columnar `JsRawColumnarData { members, columns }`. The pivot is done once on the JS side in `ResultWrapper.serialize` before `JSON.stringify`, then `from_js_raw_data` transposes back to the existing row-major `QueryResult` on Rust without per-cell clones.

Also drops the `JsArray` + `JsValueDeserializer` ingest path in `orchestrator.rs` — only `JsBox<Arc<QueryResult>>` and `JsBuffer` are accepted now. The `JsValueDeserializer` walk was the slow path the buffer route was already winning against.

Bench: synthetic dataset, 60% string dims / 40% f64 measures, no nulls,
`cargo bench --bench transform -- --sample-size 30 --measurement-time 3`.

Rust ingest path (`serde_json::from_slice` + `from_js_raw_data`, median):

| Dataset             | rows (master) | columnar (this) | Faster by | Speedup |
| ------------------- | ------------: | --------------: | --------: | ------: |
| 8 cols x 10k rows   |       52.4 ms |         40.8 ms |    -22 %  |  1.29 x |
| 16 cols x 10k rows  |      107.2 ms |         82.9 ms |    -23 %  |  1.29 x |
| 16 cols x 100k rows |     1024.7 ms |        827.7 ms |    -19 %  |  1.24 x |
| 32 cols x 100k rows |     2019.8 ms |       1633.9 ms |    -19 %  |  1.24 x |
@pull pull Bot locked and limited conversation to collaborators May 7, 2026
@pull pull Bot added the ⤵️ pull label May 7, 2026
@pull pull Bot merged commit 1a64945 into code:master May 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants